import Vue from 'vue'
import Vuex from 'vuex'
import axios from "axios"
Vue.prototype.axios = axios
Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    // 默认显示第一个标签页
    activeName: 'personality',
    // 获取最新音乐的接口的数据
    new_music: [],

    // 需要播放音乐的url
    src: '',

    // 需要用来获取音乐url的id
    src_id: "",

    // 播放列表
    play_list: [],

    // 播放列表的数量限制
    play_list_count: 10,

    // 正在播放的音乐的信息
    musis_info: {},

    // audio节点存储位置
    audio: "",

    // 控制暂定播放的图标
    paly_icon: false,

    // 正在播放的时长
    current_time: "00:00",

    // 正在播放音乐的总时长
    music_total_time: "00:00",

    // 正在播放的时长跟正在播放音乐的总时长的比例的值
    player_lenth: 0,

    // 设置音量
    set_volume: 50,

    // 控制音量的图标
    volume_icon: true,

    // 存放歌词的地方
    lyric: [],

    // 存放歌词盒子的节点
    lyric_box:"",
    // 歌词的每个节点
    gc:"",

    // 歌词高亮的下标
    lyric_active_index:-1,

    // 选择电台的分类  通过id
    select_nchor_type: -1,

    // 选择电台分类得到的数据
    select_anchor_type_data: [],

    // 选择电台后得到的数据
    select_acchor_data: [],

    // 选择电台后得到的节目数据
    select_acchor_program_data: [],

    // 创作翻唱
    select_nchor_type_title_data: [],

    // 音乐故事
    music_story_data: [],

    // 声音恋人
    voice_lover_data: [],

    // 歌单里面的音乐列表
    song_music_list: [],

    // 飙升榜的音乐数据  5条数据
    get_toplist_music1: [],
    // 飙升榜的图片
    get_toplist_img: [],

    // 飙升榜的音乐数据  5条数据
    get_toplist_music2: [],
    // 飙升榜的图片
    get_toplist_img2: [],

    // 飙升榜的音乐数据  5条数据
    get_toplist_music3: [],
    // 飙升榜的图片
    get_toplist_img3: [],

    // 飙升榜的音乐数据  5条数据
    get_toplist_music4: [],
    // 飙升榜的图片
    get_toplist_img4: [],

    // 全球榜的数据
    all_toplist_data: [],

    // 歌手榜数据
    singer_data: [],

    // 选择高亮 语种, 分类, 高亮
    active_singers2: 0,
    active_singers3: 0,

    active_singers2_cat: "",
    select_screening_initial: "",
    // 歌手信息
    singer_info: {},
    // 歌手页面滚动加载的页数
    offset_singer: 1,


    // 歌手最热门50首的
    ten_top_music: [],
    // 歌手最热门五十首的长度
    ten_top_music_len: [],
    // 切割完最热门50首剩下的歌曲
    splice_behind: [],

    // 歌手专辑数据
    get_singer_album: [],

    // 五十首全部播放
    singer_all_play: [],

    // 歌手描述的数据
    singer_details_desc: "",

    // 相似歌手的数据
    simi_singer: "",

    // 歌手的mv
    singer_mv: "",

    // 新歌速递的数据
    top_song_new: '',

    // 选择 新歌速递的全部 欧美  华语等
    select_top_song_tab: 0,

    // 选择新歌速递  或者  新碟上架的下标
    album_songs: 0,

    // 新碟上架周数据
    week_album_songs: [],
    // 新碟上架月数据
    mounth_album_songs: [],

    // 搜索页面的 搜索到数据
    search_data: [],

    // 找到多少条数据  并且是什么数据 例如: 找到100条单曲
    search_data_count:"",

    // 搜索的关键字:
    search_value: "",

    // 搜索页面单曲的limit
    search_limit:30,

    // 搜索页面单曲的page
    search_page:1,

    // 搜索记录
    search_history_data:[],

    // 搜索页面标签的下标
    select_search_tab:0,

    // 搜索页面标签的type
    select_searrch_tab_type:1
  },
  mutations: {
    activeName(state, activeName) {
      state.activeName = activeName
    },
    // 修改state的src_id
    src_id(state, new_music) {
      state.src_id = new_music;
    },

    // 修改音乐的连接src
    src(state, src) {
      state.src = src
    },

    // 拿到audio节点
    audio(state, audio) {
      state.audio = audio
    },

    // 正在音乐的信息
    musis_info(state, music_info) {
      state.musis_info = music_info
    },

    // play_list播放过的列表  把当前播放的歌曲unshift进来
    play_list(state, music_info) {
      for (let i = 0; i < state.play_list.length; i++) {
        if (state.play_list[i].id == music_info.id) {
          return
        }
      }
      state.play_list.push(music_info)
    },

    // 用于单曲删除的修改
    play_list_delete_one(state, index) {
      state.play_list.splice(index, 1)
    },

    // 空余清空播放列表
    play_list_delete_all(state, len) {
      state.play_list.splice(0, len)
    },

    // 修改播放状态
    paly_icon(state, paly_icon) {
      state.paly_icon = paly_icon
    },

    // 修改正在播放的时间
    current_time(state, current_time) {
      state.current_time = current_time
    },

    // 修改正在播放音乐的时长
    music_total_time(state, music_total_time) {
      state.music_total_time = music_total_time
    },

    // 正在播放的时长跟正在播放音乐的总时长的比例的值 修改播放器的进度  拖动播放器进度条修改值
    player_lenth(state, player_lenth) {
      state.player_lenth = player_lenth
    },

    // 设置音量
    set_volume(state, set_volume) {
      state.set_volume = set_volume
    },

    // 音量图标显示
    volume_icon(state, volume_icon) {
      state.volume_icon = volume_icon
    },

    // 修改存放歌词的位置
    lyric(state, lyric) {
      state.lyric = lyric
    },

    // 修改存放歌词的节点
    lyric_box(state,lyric_box){
      state.lyric_box = lyric_box
    },
    // 修改存放歌词的节点
    gc(state,gc){
      state.gc = gc
    },

    // 歌词需要高亮的下标
    lyric_active_index(state,lyric_active_index){
      state.lyric_active_index = lyric_active_index
    },

    // 选择电台的分类  通过下标
    select_nchor_type(state, select_nchor_type) {
      state.select_nchor_type = select_nchor_type
    },

    //  选择电台分类得到的数据
    select_anchor_type_data(state, select_anchor_type_data) {
      state.select_anchor_type_data = select_anchor_type_data
    },

    // 选择电台后得到的数据  和   选择排行榜后得到的数据  和点击歌单后得到的数据  点击歌手专辑后得到的数据
    select_acchor_data(state, select_acchor_data) {
      state.select_acchor_data = select_acchor_data
    },

    // 选择电台后得到节目的数据
    select_acchor_program_data(state, select_acchor_program_data) {
      state.select_acchor_program_data = select_acchor_program_data
    },

    // 头标签创作翻唱
    select_nchor_type_title_data(state, select_nchor_type_title_data) {
      state.select_nchor_type_title_data = select_nchor_type_title_data
    },

    // 音乐故事
    music_story_data(state, music_story_data) {
      state.music_story_data = music_story_data
    },

    // 声音恋人
    voice_lover_data(state, voice_lover_data) {
      state.voice_lover_data = voice_lover_data
    },

    // 歌单里面的音乐列表
    song_music_list(state, song_music_list) {
      state.song_music_list = song_music_list
    },
    // =====================================================================
    //  飙升榜的音乐数据  5条数据
    get_toplist_music1(state, get_toplist_music1) {
      state.get_toplist_music1 = get_toplist_music1
    },

    // 飙升榜的图片
    get_toplist_img(state, get_toplist_img) {
      state.get_toplist_img = get_toplist_img
    },
    //  飙升榜的音乐数据  5条数据
    get_toplist_music2(state, get_toplist_music1) {
      state.get_toplist_music2 = get_toplist_music1
    },

    // 飙升榜的图片
    get_toplist_img2(state, get_toplist_img) {
      state.get_toplist_img2 = get_toplist_img
    },
    //  飙升榜的音乐数据  5条数据
    get_toplist_music3(state, get_toplist_music1) {
      state.get_toplist_music3 = get_toplist_music1
    },

    // 飙升榜的图片
    get_toplist_img3(state, get_toplist_img) {
      state.get_toplist_img3 = get_toplist_img
    },
    //  飙升榜的音乐数据  5条数据
    get_toplist_music4(state, get_toplist_music1) {
      state.get_toplist_music4 = get_toplist_music1
    },

    // 飙升榜的图片
    get_toplist_img4(state, get_toplist_img) {
      state.get_toplist_img4 = get_toplist_img
    },
    // =========================================================================


    // 排行版 全球榜的数据
    all_toplist_data(state, all_toplist_data) {
      state.all_toplist_data = all_toplist_data
    },


    // 歌手页面的歌手
    singer_data(state, singer_data) {
      state.singer_data = singer_data
    },
    // 歌手页面的歌手
    singer_data2(state, singer_data) {
      state.singer_data.push(...singer_data)
    },

    active_singers2(state, active_singers2) {
      state.active_singers2 = active_singers2
    },
    active_singers3(state, active_singers3) {
      state.active_singers3 = active_singers3
    },

    active_singers2_cat(state, active_singers2_cat) {
      state.active_singers2_cat = active_singers2_cat
    },
    select_screening_initial(state, select_screening_initial) {
      state.select_screening_initial = select_screening_initial
    },

    singer_info(state, singer_info) {
      state.singer_info = singer_info
    },

    // 等于啥
    offset_singer1(state, offset_singer) {
      state.offset_singer = offset_singer
    },
    // +1 
    offset_singer2(state, offset_singer) {
      state.offset_singer = offset_singer + 1
    },
    // +2
    offset_singer3(state, offset_singer) {
      state.offset_singer = offset_singer + 2
    },
    // -1 
    offset_singer4(state, offset_singer) {
      state.offset_singer = offset_singer - 1
    },

    // 歌手最热门50首的前十首
    ten_top_music(state, ten_top_music) {
      state.ten_top_music = ten_top_music
    },
    // 用于可以将剩下的歌曲全部push进ten_top_music中
    ten_top_music_push(state, ten_top_music) {
      state.ten_top_music = ten_top_music
    },
    // 歌手最热门50首的长度
    ten_top_music_len(state, ten_top_music_len) {
      state.ten_top_music_len = ten_top_music_len
    },

    // 切完10首歌剩下的歌曲
    splice_behind(state, splice_behind) {
      state.splice_behind = splice_behind
    },

    // 歌手的专辑数据
    get_singer_album(state, get_singer_album) {
      state.get_singer_album = get_singer_album
    },

    // 在歌手详情页面   点击专辑的全部播放 热门五十首的全部播放
    singer_all_play(state, singer_all_play) {
      state.singer_all_play = singer_all_play
    },

    // 歌手描述的数据
    singer_details_desc(state, singer_details_desc) {
      state.singer_details_desc = singer_details_desc
    },

    // 相似歌手的数据
    simi_singer(state, simi_singer) {
      state.simi_singer = simi_singer
    },

    // mv的数据
    singer_mv(state, singer_mv) {
      state.singer_mv = singer_mv
    },

    // 新碟上架
    top_song_new(state, top_song_new) {
      state.top_song_new = top_song_new
    },

    // 新歌速递选择类型
    select_top_song_tab(state, select_top_song_tab) {
      state.select_top_song_tab = select_top_song_tab
    },

    // 选择 新歌速递   或者选择新碟上架
    album_songs(state, album_songs) {
      state.album_songs = album_songs
    },

    // 新碟上架的周数据
    week_album_songs(state, week_album_songs) {
      state.week_album_songs = week_album_songs
    },

    // 新碟上架的月数据
    mounth_album_songs(state, mounth_album_songs) {
      state.mounth_album_songs = mounth_album_songs
    },

    // 搜索得到的数据
    search_data(state, search_data) {
      state.search_data = search_data
    },

    // 搜索的关键字
    search_value(state, search_value) {
      state.search_value = search_value
    },

    // 搜索页面的limit
    search_limit(state, search_limit) {
      state.search_limit = search_limit
    },
    // 搜索页面单曲的page
    search_page(state,search_page){
      state.search_page =search_page
    },

    // 搜索历史
    search_history_data(state,search_history_data){
      for(let i = 0; i < state.search_history_data.length; i++){
        if(state.search_history_data[i] === search_history_data){
          return
        }
      }
      state.search_history_data.push(search_history_data)
    },
    // 单个删除搜索历史
    search_history_data_index(state,index){
      state.search_history_data.splice(index,1)
    },
    // 全部删除搜索历史
    search_history_data_all(state,search_history_data){
      state.search_history_data = search_history_data
    },

    // 搜索页面标签页的下标
    select_search_tab(state,select_search_tab){
      state.select_search_tab = select_search_tab
    },

    // 找到了多少数据 并且是什么 例如: 找到100条单曲
    search_data_count(state,search_data_count){
      state.search_data_count = search_data_count
    },

    // 搜索页面tab的type
    select_searrch_tab_type(state,select_searrch_tab_type){
      state.select_searrch_tab_type = select_searrch_tab_type
    }
  },
  actions: {

    // 判断音乐是否可用 /check/music
    check_music(context) {
      axios.get("/check/music", {
        params: {
          id: context.state.src_id
        }
      }).then(res => {
        console.log("测试音乐是否可用", res);
      }).catch(err => {
        console.log("测试音乐是否可用", err);
      })
    },


    // 调用获取音乐的url的接口
    get_src(context) {
      axios.get("/song/url", {
        params: {
          id: context.state.src_id
        }
      }).then(res => {
        context.commit("src", res.data.data[0].url)
        console.log("我是url", res);
      }).catch(err => {
        console.log(err);
      })
    }
  },
  getters: {
    // 控制底部播放控件显示隐藏
    play_show(state) {
      return Boolean(state.play_list.length + 0)
    },
  },
  modules: {}
})